﻿/***
  \brief  Вес каждого слова. Важность.
  
*/


#pragma once



#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

#include "String.h"
#include "Error.h"

//-------------------------------------------------------------------------


struct  CORE_API WordsWeightItem_s
{
	UINT          count; ///< счётчик. Кол-во сколько раз встречается.
	std::string   word;  ///< само слово.

	void MakeString(std::string& dest) ;

	bool FromString(const std::string& src)  throw(Error);


};


//-------------------------------------------------------------------------

//! \brief Категория англ. слов.   Список слов обединённый в категорию, имеет вес (значение). 
class  CORE_API WordsWeight
{
private:
	std::wstring m_fullPath;


	std::vector<WordsWeightItem_s>*  m_items;

	//static bool Search(const WordsWeightItem_s& a1, const WordsWeightItem_s& a2);
	static bool DoSort(const WordsWeightItem_s& a1, const WordsWeightItem_s& a2);

public:

	 WordsWeight(const WCHAR* filepath) throw (Error);
	~WordsWeight();

	UINT GetWordWeightUint(const char* eng_word) const  throw(Error);

	void Load() throw (Error);

	//void Save() throw (Error);


};


// end file 